package ytr.android.sparrow;

import java.util.ArrayList;
import java.util.List;

import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;

/**
 * <pre>
 * 麻雀スコア管理画面クラス リザルトリスト データ格納処理。
 * @author toki
 * </pre>
 */
public class ScoreManagementResultListAdapter extends ArrayAdapter<ScoreManagementResultListItem> {


	/**
	 * 呼び出し元のレイアウトを操作するためのオブジェクト
	 */
	private LayoutInflater mLayoutInflater;

	/**
	 * リストカラムサイズ情報
	 */
	private  List<Integer> m_colSizeList;
	
	/**
	 * チップデータ格納レコードインデックス
	 */
	public static final int INDEX_CHIP_RECORD = 0;

	/**
	 * 麻雀合計データ格納レコードインデックス
	 */
	public static final int INDEX_TOTAL_RECORD = 1;

	/**
	 * レート加算済データ格納レコードインデックス
	 */
	public static final int INDEX_RATE_TOTAL_RECORD = 2;

	/**
	 * 店料金データ格納レコードインデックス
	 */
	public static final int INDEX_STORE_MONEY_RECORD = 3;

	/**
	 * 総合結果データ格納レコードインデックス
	 */
	public static final int INDEX_MONEY_RECORD = 4;	
	
	/**
	 * リストビューコントロールクラス
	 */
	private static class ViewHolder {
		TextView cell_label;
		TextView cell_1;
		TextView cell_2;
		TextView cell_3;
		TextView cell_4;
		TextView cell_5;
		TextView cell_6;
	}

	/**
	 * コンストラクタ
	 * @param context
	 * @param textViewResourceId
	 * @param objects
	 * @param colSizeList
	 * @param indexFlag
	 */
	public ScoreManagementResultListAdapter(Context context, int textViewResourceId, List<ScoreManagementResultListItem> objects, List<Integer> colSizeList) {
		super(context, textViewResourceId, objects);

		mLayoutInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
		m_colSizeList = colSizeList;
	}

	/**
	 * リスト描画処理
	 */
	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		ScoreManagementResultListItem item = (ScoreManagementResultListItem)getItem(position);
		ViewHolder viewHolder;

		if (null == convertView) {
			convertView = mLayoutInflater.inflate(R.layout.score_management_row, null);
			viewHolder = new ViewHolder();
			viewHolder.cell_label = (TextView)convertView.findViewById(R.id.listCell_index);
			viewHolder.cell_1 = (TextView)convertView.findViewById(R.id.listCell_Text1);
			viewHolder.cell_2 = (TextView)convertView.findViewById(R.id.listCell_Text2);
			viewHolder.cell_3 = (TextView)convertView.findViewById(R.id.listCell_Text3);
			viewHolder.cell_4 = (TextView)convertView.findViewById(R.id.listCell_Text4);
			viewHolder.cell_5 = (TextView)convertView.findViewById(R.id.listCell_Text5);
			viewHolder.cell_6 = (TextView)convertView.findViewById(R.id.listCell_Text6);

			if (m_colSizeList.size() == ScoreManagementActivity.LIST_COLUMN_NUM) {
				viewHolder.cell_label.setWidth(m_colSizeList.get(0));
				viewHolder.cell_1.setWidth(m_colSizeList.get(1));
				viewHolder.cell_2.setWidth(m_colSizeList.get(2));
				viewHolder.cell_3.setWidth(m_colSizeList.get(3));
				viewHolder.cell_4.setWidth(m_colSizeList.get(4));
				viewHolder.cell_5.setWidth(m_colSizeList.get(5));
				viewHolder.cell_6.setWidth(m_colSizeList.get(6));				
			}

			convertView.setTag(viewHolder);
		} else {
			viewHolder = (ViewHolder)convertView.getTag();
		}

		List<String> list = new ArrayList<String>();
		list = item.getAllCell();
		if (ScoreManagementActivity.LIST_VARIABLE_COLUMN_NUM == list.size()) {
			viewHolder.cell_label.setText(item.getLabel());
			viewHolder.cell_1.setText(list.get(0));
			viewHolder.cell_2.setText(list.get(1));
			viewHolder.cell_3.setText(list.get(2));
			viewHolder.cell_4.setText(list.get(3));
			viewHolder.cell_5.setText(list.get(4));
			viewHolder.cell_6.setText(list.get(5));
		}
		return convertView;
	}
}


